package adaboostcn.util;



import java.awt.image.BufferedImage;
import java.io.File;



import javax.imageio.ImageIO;

public class Util {
	public static String caminhoNegativas = "images/negativas";
	public static String caminhoPositivas = "images/positivas";
	public static String caminhoNegativasValidar = "images/validar/negativas";
	public static String caminhoPositivasValidar = "images/validar/positivas";
	
	public static String formatoJPG = ".jpg";
	
	public static String formatoBMP = ".bmp";
	
	public static String[] listaArquivos(String caminho){
		
		
		File diretorio = new File(caminho);
		File fList[] = diretorio.listFiles();
		String list[] = new String[fList.length];
		
		for ( int i = 0; i < fList.length; i++ ){
			list[i] = fList[i].getName();		
		}
		return list;
		
	}
	
	public static double[][] lerImagem(String caminho) throws Exception {
		File f = new File(caminho);
		BufferedImage image = ImageIO.read(f);
		double[][] retorno = new double[image.getHeight()][image.getWidth()];
		for (int i = 0; i < image.getWidth(); i++) {
			for (int j = 0; j < image.getHeight(); j++) {
				double[] tmp = new double[3];
				image.getRaster().getPixel(i, j, tmp);
				retorno[j][i] = tmp[0];
			}
		}
		return retorno;
	}
	
	public static void salvaImagem(String caminho,
			double[][] imagem) throws Exception {
		try {
			BufferedImage image = new BufferedImage(imagem[0].length, imagem.length, BufferedImage.TYPE_BYTE_GRAY);
			for (int y = 0; y < imagem.length; ++y) {
				for (int x = 0; x < imagem[0].length; ++x) {
					double[] tmp = new double[] { imagem[y][x] };
					image.getRaster().setPixel(x, y, tmp);
				}
			}
			ImageIO.write(image, "bmp", new File(caminho));

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	

}
